﻿namespace WebPacker.Packs.Watchers
{
	using System;
	using System.Collections.Generic;
	using WebPacker.Packs.Resources;

	public interface IResourceWatcher : IDisposable
	{
		event EventHandler<ResourceChangedEventArgs> Changed;

		bool Accept(IResource resource);

		void Add(IResource resource);

		bool Remove(IResource resource);

		bool Contains(IResource resource);

		void Set(IEnumerable<IResource> resources);

		IEnumerable<IResource> GetResources();

		void Clear();
	}
}